package main

import "fmt"

//匿名函数:没有名字的函数。

//1.定义函数的时候 可以直接使用,只可以使用一次。
func anonymousFunc1() {
	sum := func(x int, y int) int {
		return x + y
	}(99, 28) //括号里的99,28相当于参数列表，分别对应x,y。
	fmt.Printf("sum=%v\n", sum)
}

//2.将匿名函数赋值给一个变量(函数变量),再通过该变量来调用匿名函数。
func anonymousFunc2() {
	test_func := func(x int, y int) int {
		return x + y
	}
	fmt.Printf("res1=%v\n", test_func(10, 20))
}

//3.全局匿名函数
var (
	testFunc = func(x, y int) int {
		return x - y
	}
)

func anonymousFunc3() {
	fmt.Printf("testFunc3=%v\n", testFunc(100, 9))
}

func main() {
	anonymousFunc1()
	anonymousFunc2()
	anonymousFunc3()
}
